1. Field of the Invention
The present invention relates to wireless communication systems, and more particularly to transmission protocols used by third-generation (3G) wireless communication systems.
2. Description of the Related Art
One category of mobile telephony communication devices, or mobile phones, includes third-generation devices. Third-generation (3G) mobile phones use digital radio signals for communication with cell towers, also known as base stations. Third-generation mobile phones are able to simultaneously transfer multiple data streams, such as voice, e-mail, instant messages, and streaming audio or video. Third-generation mobile phones additionally allow for high rates of data transfers and broadband capabilities. The high rates of data transfer rely on efficient organization and transmission of data to and from the applications miming on a mobile phone. The organization and transmission of data is defined by protocols and standards.
Third-generation mobile phone standards are set by the Third Generation Partnership Project (3GPP) and are based on Universal Mobile Telecommunications System (UMTS) network technology. UMTS evolved from Global System for Mobile Communication (GSM) network technology, and UMTS can use GSM core networks. The 3GPP comprises several Technical Specification Groups (TSGs) that are responsible for various areas of third-generation technology. One way to categorize 3G technology is by layer levels and protocols. The 3G protocol stack includes at least three layers: (i) layer 1, also known as the physical layer, (ii) layer 2, also known as the data link layer, and (iii) layer 3, also known as the network layer. The network layer handles communication with applications on a mobile phone, the physical layer handles communication between the mobile phone and a base station, while the data link layer interfaces between the network and physical layers.
FIG. 1 shows a simplified partial block diagram of the 3G protocol stack. The various communication paths shown can be direct or indirect and can include intermediary elements which are not shown in the figure or described herein. Layer 1 comprises physical layer 101, which communicates with an antenna via path 101a and with layer 2 via path 102b. Path 102b comprises transport channels. Transport channels are data flows between the data link layer and the physical layer. Data in the transport channels is organized into packets. Transport channels can then be combined onto composite transport channels for radio transmission between a mobile phone and a base station using physical layer 101.
Layer 2 comprises Media Access Control (MAC) layer 102 and Radio Link Control (RLC) layer 103, which communicate via path 102a, wherein path 102a comprises logical channels. Logical channels are data flows within layer 2 associated with applications running on the mobile phone. The data flows are organized into packets in the logic channels. In a receiver, RLC layer 103 may contain a decryption entity (not shown) that functions to decrypt data that was encrypted by a corresponding encryption entity in a corresponding transmitter.
Layer 3 includes Radio Resource Controller (RRC) entity 104, which controls and communicates with physical layer 101, MAC layer 102, and RLC layer 103 via paths 104c, 104b, and 104d, respectively. RRC 104 communicates with applications running on the mobile phone via path 104a. RLC layer 103 can also communicate with applications running on the mobile phone via path 103a, either directly or through intermediary entities (not shown) in layer 3. Layer 3 includes other entities (not shown), as well.
Layer 2 architecture and design is regulated by Working Group 2 (WG2) of the Radio Access Network (RAN) TSG, which is in charge of the Radio Interface architecture and protocols (MAC, RLC, Packet Data Convergence Protocol (PDCP)), the specification of the Radio Resource Control protocol, the strategies of Radio Resource Management, and the services provided by the physical layer to the upper layers. Among the technical specifications (TS) provided by WG2 RAN TSG is TS 25.321, which is the MAC protocol specification. TS 25.321 is occasionally updated and multiple releases are published, in conjunction with new releases of the 3GPP standard. A list of releases of TS 25.321 is presently available on the Internet at http://www.3gpp.org/ftp/Specs/html-info/25321.htm. The MAC protocol specifies, among other things, (i) communication channels and (ii) protocol data units, formats, and parameters, for communication between the physical layer and the RLC layer of a mobile phone.
Release 5 of the 3GPP standard introduced the high-speed downlink packet access (HSDPA) protocol, which allows for the high-speed download of data to a mobile telephony device, referred to as user equipment (UE), from a base station, referred to as a Node-B. A Node-B is part of the UMTS Terrestrial Radio Access Network (UTRAN). Releases 6 and 7 of the 3GPP also include the HSDPA protocol, and later releases are expected to include it as well. Unless otherwise indicated, references herein to entities refer to logical entities in a UE.
The HSDPA protocol uses a High Speed Downlink Shared Channel (HS-DSCH), which is controlled by a MAC-layer entity called MAC-hs (MAC-high speed). A MAC-hs entity in a UE performs functions related to, but different from, the functions of a MAC-hs entity in a corresponding Node-B with which the UE is communicating over an HS-DSCH. An HS-DSCH might carry data for multiple UE processes. In order for the MAC-hs in the UE to deliver data packets to the appropriate UE process, the MAC-hs performs reordering-queue distribution, a function sometimes more-briefly referred to as queue distribution. Received MAC-hs packets include queue IDs which indicate the particular reordering queue to which the MAC-hs packets should be routed. The MAC-hs packets distributed to a particular reordering queue are then re-ordered, if necessary, and then disassembled. Packets may need to be re-ordered if they arrive out of order. Out-of-order arrival can result, for example, when a packet is not properly received and is re-transmitted after some sequentially-subsequent packets have already been successfully received. The UE's MAC-hs entity has a Hybrid Automatic Repeat Request (HARQ) entity, which functions as part of the error-control retransmission mechanism used for data packets that are not received as intended by the UE.
FIG. 2 shows the format of exemplary MAC-hs protocol data unit (PDU) 200 in accordance with the 3GPP standard. A MAC PDU in general is a bit string of variable length. MAC-hs PDU 200 comprises MAC-hs header 201 and MAC-hs payload 202 comprising one or more MAC-hs Service Data Units (SDUs), such as MAC-hs SDUs 203 and 204. MAC-hs payload 202 can also comprise optional padding. Both the MAC-hs header and the MAC-hs payload are of variable length, thus the MAC-hs SDU are generally not byte-, word-, or otherwise address-aligned. Each MAC-hs SDU, such as MAC-hs SDUs 203 and 204, corresponds to a MAC-d PDU. For example, MAC-hs SDU 203 may be equivalent to one MAC-d PDU and MAC-hs SDU 204 may be equivalent to another MAC-d PDU. Thus, MAC-hs payload 202 comprises one or more MAC-d PDUs.
MAC-hs header 201 comprises the queue ID and TSN fields discussed elsewhere herein. MAC-hs header 201 also comprises other fields required for MAC-hs headers by the 3GPP standard, such as a version flag (VF), size index identifier (SID), number of MAC-d PDUs (N), and field-following flag (F). A pair of SID and N parameters, such as SID1 and N1, are used to define the size, indicated by SID, of a quantity, indicated by N, of consecutive MAC-d PDUs (i.e., MAC-hs SDUs) in the MAC-hs payload. A field-following flag, such as F1, is used to indicate whether more fields follow in the header or not. For example, if MAC-hs payload 202 comprises two MAC-d PDUs of a first size, followed by four MAC-d PDUs of a second size, followed by three MAC-d PDUs of the first size, then SID1-3, N1-3, and F1-3 would be used to indicate that sequence. As an alternative example, if all the MAC-d PDUs in MAC-hs payload 202 are the same size, then only SID1, N1, and F1 are necessary, and SID2-SIDk, N2-Nk, and F2-Fk can be omitted.
FIG. 3 shows a simplified block diagram of the architecture of UE-side MAC-hs entity 300 in accordance with Release 5 of the 3GPP standard. MAC-hs entity 300, which is located in MAC layer 102 of FIG. 1, receives downloaded data from layer 1 entities, processes it, and passes the processed downloaded data to a MAC-d entity (not shown) also located in MAC layer 102. MAC-hs entity 300 is controlled by MAC control entity 301 via path 301a. MAC-hs entity 300 communicates with the MAC-d entity via paths such as 304b and 305b, and communicates with layer 1 entities via paths 302a and 302b. MAC-hs entity 300 comprises HARQ entity 302, reordering-queue distribution entity 303, and one or more reordering queues, such as reordering queues 304 and 305. Reordering queue 304 comprises reordering entity 306 and disassembly entity 307, while reordering queue 305 comprises reordering entity 308 and disassembly entity 309. Each reordering queue in MAC-hs 300 corresponds to a particular process in the UE. There may be a limit on the number of queues a MAC-hs entity will handle. For example, in Release 5 of the 3GPP standard, the limit is eight queues.
HARQ entity 302 receives MAC-hs PDUs, downloaded from a corresponding Node-B, from layer 1 via path 302a. HARQ entity 302 communicates signaling information with the Node-B through layer 1 via bidirectional path 302b. If HARQ entity 302 determines that a MAC-hs PDU was successfully received, then HARQ entity 302 transmits an acknowledgment (ACK) in response. If HARQ entity 302 determines that a MAC-hs PDU was received with one or more errors that are not correctable, then HARQ entity 302 transmits a negative acknowledgement (NACK) in response to that PDU. If HARQ entity 302 transmits a NACK in response to a particular PDU, then HARQ entity 302 expects the corresponding Node-B to retransmit that particular PDU in response to the NACK. If a retransmitted PDU is received without error, then it can replace any previous error-ridden versions. If a retransmitted PDU is received with one or more errors, it might nevertheless be used, together with one or more previous error-ridden versions, to reconstruct an error-free version of that PDU. HARQ entity 302 passes received and/or reconstructed MAC-hs PDUs to reordering-queue distribution entity 303 via path 303a. Reordering-queue distribution entity 303 routes those MAC-hs PDUs to the correct reordering queue based on the queue IDs of those MAC-hs PDUs.
If, for example, the queue ID of a particular MAC-hs PDU indicates that the PDU belongs to queue 304, then that PDU is routed, via path 304a, to reordering entity 306 in queue 304. MAC-hs PDUs include a transmission sequence number (TSN), which indicates a PDU's location in a sequence of PDUs. Reordering entity 306 orders the received PDUs according to their TSNs. MAC-hs PDUs with consecutive TSNs are delivered to disassembly entity 307 upon receipt, but MAC-hs PDUs are not so delivered if MAC-hs PDUs with lower TSN numbers are missing. Such “early” MAC-hs PDUs, which are received while MAC-hs PDUs with a lower TSN are missing, are stored in a buffer until the missing MAC-hs PDUs are received, whereupon the consecutive MAC-hs PDUs are delivered to disassembly entity 307.
Disassembly entity 307, which receives ordered MAC-hs PDUs from reordering entity 306 via path 307a, is responsible for the disassembly of those MAC-hs PDUs. Disassembly involves the removal of the MA C-hs header and optional padding and the extraction of the MAC-d PDUs stored within each MAC-hs PDU. Disassembly typically requires many bit-shifting operations because the MAC-d PDUs inside a MAC-hs PDU are typically not byte-aligned, while extracted MAC-d PDUs typically need to be byte-aligned for proper addressing and handling by other entities. Disassembly entity 307 delivers the extracted MAC-d PDUs, via path 304b, to a MAC-d entity in the MAC layer of the UE.
If, for example, the queue ID of another MAC-hs PDU indicates that the PDU belongs to queue 305, then that PDU is routed, via path 305a, to reordering entity 308 in queue 305. Reordering entity 308 and disassembly entity 309 in reordering queue 305 operate in a similar way as described for reordering entity 306 and disassembly entity 307 of reordering queue 304, and so would reordering and disassembly entities in any additional reordering queues (not shown) in MAC-hs entity 300.
FIG. 4 shows a simplified block diagram of part of prior-art UE 400 showing processor relationship to protocol-stack layers. Different processors may be associated with different layers of the 3G protocol stack. For example, MAC-hs functionality is typically implemented in a Protocol Stack (PS) processor, such as PS processor 401. Thus, the tasks of PS processor 401 include HARQ, reordering-queue distribution, reordering, and disassembly. The reordering process, as noted above, utilizes a memory buffer for storing MAC-hs PDUs that arrive “too early.” The 3GPP standard specifies that a particular memory buffer be shared by both (i) the MAC-hs reordering buffer and (ii) an RLC acknowledged mode (AM) transmitting and receiving buffer. PS processors, such as PS processor 401, are typically implemented using Advanced RISC (reduced instruction set computer) Machine (ARM) processors.
As noted above, the received data by may be encrypted and thus require decryption. Layer 2 decryption, such as RLC-layer and MAC-layer decryption, involves an algorithm called the f8 algorithm, and is also typically implemented in a PS processor. RLC-layer and MAC-layer ciphering is described in the 3GPP's TS 33.102 on security architecture, incorporated herein by reference in its entirety. Various releases of TS 33.102 are presently available on the Internet at http://www.3gpp.org/ftp/Specs/html-info/33102.htm. MAC-layer decryption is used for transparent RLC mode, while RLC-layer decryption is used for acknowledged and unacknowledged (AM and UM), i.e., non-transparent, RLC mode. Certain decryption tasks require use of particular parameters, such as radio bearer, hyperframe number (HEN), and cipher key, which become available in the RLC layer.
Layer 1 processor 402 is a baseband processor, which is a type of DSP, and is designed to efficiently handle bit-shifting and other bit-intensive operations. Layer 1 processor 402 performs baseband processing, which includes modem-like functionality for UE 400. In general, operations in layer 1 processor 402 are bit-oriented, while operations in PS processor 401 are byte- and word-, i.e., multi-byte memory unit, oriented.